
// MIT License
// 
// Copyright (c) 2009-2017 Luca Piccioni
// 
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// 
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
// 
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
// 
// This file is automatically generated

#pragma warning disable 649, 1572, 1573

// ReSharper disable RedundantUsingDirective
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Security;
using System.Text;

using Khronos;

// ReSharper disable CheckNamespace
// ReSharper disable InconsistentNaming
// ReSharper disable JoinDeclarationAndInitializer

namespace OpenGL
{
	public partial class Gl
	{
		/// <summary>
		/// [GL] Value of GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int VERTEX_ATTRIB_ARRAY_UNIFIED_NV = 0x8F1E;

		/// <summary>
		/// [GL] Value of GL_ELEMENT_ARRAY_UNIFIED_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int ELEMENT_ARRAY_UNIFIED_NV = 0x8F1F;

		/// <summary>
		/// [GL] Value of GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int VERTEX_ATTRIB_ARRAY_ADDRESS_NV = 0x8F20;

		/// <summary>
		/// [GL] Value of GL_VERTEX_ARRAY_ADDRESS_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int VERTEX_ARRAY_ADDRESS_NV = 0x8F21;

		/// <summary>
		/// [GL] Value of GL_NORMAL_ARRAY_ADDRESS_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int NORMAL_ARRAY_ADDRESS_NV = 0x8F22;

		/// <summary>
		/// [GL] Value of GL_COLOR_ARRAY_ADDRESS_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int COLOR_ARRAY_ADDRESS_NV = 0x8F23;

		/// <summary>
		/// [GL] Value of GL_INDEX_ARRAY_ADDRESS_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int INDEX_ARRAY_ADDRESS_NV = 0x8F24;

		/// <summary>
		/// [GL] Value of GL_TEXTURE_COORD_ARRAY_ADDRESS_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int TEXTURE_COORD_ARRAY_ADDRESS_NV = 0x8F25;

		/// <summary>
		/// [GL] Value of GL_EDGE_FLAG_ARRAY_ADDRESS_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int EDGE_FLAG_ARRAY_ADDRESS_NV = 0x8F26;

		/// <summary>
		/// [GL] Value of GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int SECONDARY_COLOR_ARRAY_ADDRESS_NV = 0x8F27;

		/// <summary>
		/// [GL] Value of GL_FOG_COORD_ARRAY_ADDRESS_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int FOG_COORD_ARRAY_ADDRESS_NV = 0x8F28;

		/// <summary>
		/// [GL] Value of GL_ELEMENT_ARRAY_ADDRESS_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int ELEMENT_ARRAY_ADDRESS_NV = 0x8F29;

		/// <summary>
		/// [GL] Value of GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int VERTEX_ATTRIB_ARRAY_LENGTH_NV = 0x8F2A;

		/// <summary>
		/// [GL] Value of GL_VERTEX_ARRAY_LENGTH_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int VERTEX_ARRAY_LENGTH_NV = 0x8F2B;

		/// <summary>
		/// [GL] Value of GL_NORMAL_ARRAY_LENGTH_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int NORMAL_ARRAY_LENGTH_NV = 0x8F2C;

		/// <summary>
		/// [GL] Value of GL_COLOR_ARRAY_LENGTH_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int COLOR_ARRAY_LENGTH_NV = 0x8F2D;

		/// <summary>
		/// [GL] Value of GL_INDEX_ARRAY_LENGTH_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int INDEX_ARRAY_LENGTH_NV = 0x8F2E;

		/// <summary>
		/// [GL] Value of GL_TEXTURE_COORD_ARRAY_LENGTH_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int TEXTURE_COORD_ARRAY_LENGTH_NV = 0x8F2F;

		/// <summary>
		/// [GL] Value of GL_EDGE_FLAG_ARRAY_LENGTH_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int EDGE_FLAG_ARRAY_LENGTH_NV = 0x8F30;

		/// <summary>
		/// [GL] Value of GL_SECONDARY_COLOR_ARRAY_LENGTH_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int SECONDARY_COLOR_ARRAY_LENGTH_NV = 0x8F31;

		/// <summary>
		/// [GL] Value of GL_FOG_COORD_ARRAY_LENGTH_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int FOG_COORD_ARRAY_LENGTH_NV = 0x8F32;

		/// <summary>
		/// [GL] Value of GL_ELEMENT_ARRAY_LENGTH_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int ELEMENT_ARRAY_LENGTH_NV = 0x8F33;

		/// <summary>
		/// [GL] Value of GL_DRAW_INDIRECT_UNIFIED_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int DRAW_INDIRECT_UNIFIED_NV = 0x8F40;

		/// <summary>
		/// [GL] Value of GL_DRAW_INDIRECT_ADDRESS_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int DRAW_INDIRECT_ADDRESS_NV = 0x8F41;

		/// <summary>
		/// [GL] Value of GL_DRAW_INDIRECT_LENGTH_NV symbol.
		/// </summary>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public const int DRAW_INDIRECT_LENGTH_NV = 0x8F42;

		/// <summary>
		/// [GL] glBufferAddressRangeNV: Binding for glBufferAddressRangeNV.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="address">
		/// A <see cref="T:ulong"/>.
		/// </param>
		/// <param name="length">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public static void BufferAddressRangeNV(int pname, uint index, ulong address, uint length)
		{
			Debug.Assert(Delegates.pglBufferAddressRangeNV != null, "pglBufferAddressRangeNV not implemented");
			Delegates.pglBufferAddressRangeNV(pname, index, address, length);
			LogCommand("glBufferAddressRangeNV", null, pname, index, address, length			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexFormatNV: Binding for glVertexFormatNV.
		/// </summary>
		/// <param name="size">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:VertexPointerType"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public static void VertexFormatNV(int size, VertexPointerType type, int stride)
		{
			Debug.Assert(Delegates.pglVertexFormatNV != null, "pglVertexFormatNV not implemented");
			Delegates.pglVertexFormatNV(size, (int)type, stride);
			LogCommand("glVertexFormatNV", null, size, type, stride			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNormalFormatNV: Binding for glNormalFormatNV.
		/// </summary>
		/// <param name="type">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public static void NormalFormatNV(int type, int stride)
		{
			Debug.Assert(Delegates.pglNormalFormatNV != null, "pglNormalFormatNV not implemented");
			Delegates.pglNormalFormatNV(type, stride);
			LogCommand("glNormalFormatNV", null, type, stride			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glColorFormatNV: Binding for glColorFormatNV.
		/// </summary>
		/// <param name="size">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public static void ColorFormatNV(int size, int type, int stride)
		{
			Debug.Assert(Delegates.pglColorFormatNV != null, "pglColorFormatNV not implemented");
			Delegates.pglColorFormatNV(size, type, stride);
			LogCommand("glColorFormatNV", null, size, type, stride			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glIndexFormatNV: Binding for glIndexFormatNV.
		/// </summary>
		/// <param name="type">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public static void IndexFormatNV(int type, int stride)
		{
			Debug.Assert(Delegates.pglIndexFormatNV != null, "pglIndexFormatNV not implemented");
			Delegates.pglIndexFormatNV(type, stride);
			LogCommand("glIndexFormatNV", null, type, stride			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTexCoordFormatNV: Binding for glTexCoordFormatNV.
		/// </summary>
		/// <param name="size">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public static void TexCoordFormatNV(int size, int type, int stride)
		{
			Debug.Assert(Delegates.pglTexCoordFormatNV != null, "pglTexCoordFormatNV not implemented");
			Delegates.pglTexCoordFormatNV(size, type, stride);
			LogCommand("glTexCoordFormatNV", null, size, type, stride			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glEdgeFlagFormatNV: Binding for glEdgeFlagFormatNV.
		/// </summary>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public static void EdgeFlagFormatNV(int stride)
		{
			Debug.Assert(Delegates.pglEdgeFlagFormatNV != null, "pglEdgeFlagFormatNV not implemented");
			Delegates.pglEdgeFlagFormatNV(stride);
			LogCommand("glEdgeFlagFormatNV", null, stride			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glSecondaryColorFormatNV: Binding for glSecondaryColorFormatNV.
		/// </summary>
		/// <param name="size">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:ColorPointerType"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public static void SecondaryColorFormatNV(int size, ColorPointerType type, int stride)
		{
			Debug.Assert(Delegates.pglSecondaryColorFormatNV != null, "pglSecondaryColorFormatNV not implemented");
			Delegates.pglSecondaryColorFormatNV(size, (int)type, stride);
			LogCommand("glSecondaryColorFormatNV", null, size, type, stride			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glFogCoordFormatNV: Binding for glFogCoordFormatNV.
		/// </summary>
		/// <param name="type">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public static void FogCoordFormatNV(int type, int stride)
		{
			Debug.Assert(Delegates.pglFogCoordFormatNV != null, "pglFogCoordFormatNV not implemented");
			Delegates.pglFogCoordFormatNV(type, stride);
			LogCommand("glFogCoordFormatNV", null, type, stride			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexAttribFormatNV: Binding for glVertexAttribFormatNV.
		/// </summary>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="normalized">
		/// A <see cref="T:bool"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public static void VertexAttribFormatNV(uint index, int size, int type, bool normalized, int stride)
		{
			Debug.Assert(Delegates.pglVertexAttribFormatNV != null, "pglVertexAttribFormatNV not implemented");
			Delegates.pglVertexAttribFormatNV(index, size, type, normalized, stride);
			LogCommand("glVertexAttribFormatNV", null, index, size, type, normalized, stride			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexAttribIFormatNV: Binding for glVertexAttribIFormatNV.
		/// </summary>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public static void VertexAttribIFormatNV(uint index, int size, int type, int stride)
		{
			Debug.Assert(Delegates.pglVertexAttribIFormatNV != null, "pglVertexAttribIFormatNV not implemented");
			Delegates.pglVertexAttribIFormatNV(index, size, type, stride);
			LogCommand("glVertexAttribIFormatNV", null, index, size, type, stride			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetIntegerui64i_vNV: Binding for glGetIntegerui64i_vNV.
		/// </summary>
		/// <param name="value">
		/// A <see cref="T:GetPName"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="result">
		/// A <see cref="T:ulong[]"/>.
		/// </param>
		[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
		public static void GetIntegerNV(GetPName value, uint index, [Out] ulong[] result)
		{
			unsafe {
				fixed (ulong* p_result = result)
				{
					Debug.Assert(Delegates.pglGetIntegerui64i_vNV != null, "pglGetIntegerui64i_vNV not implemented");
					Delegates.pglGetIntegerui64i_vNV((int)value, index, p_result);
					LogCommand("glGetIntegerui64i_vNV", null, value, index, result					);
				}
			}
			DebugCheckErrors(null);
		}

		internal static unsafe partial class Delegates
		{
			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glBufferAddressRangeNV(int pname, uint index, ulong address, uint length);

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glBufferAddressRangeNV pglBufferAddressRangeNV;

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexFormatNV(int size, int type, int stride);

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexFormatNV pglVertexFormatNV;

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNormalFormatNV(int type, int stride);

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNormalFormatNV pglNormalFormatNV;

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glColorFormatNV(int size, int type, int stride);

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glColorFormatNV pglColorFormatNV;

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glIndexFormatNV(int type, int stride);

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glIndexFormatNV pglIndexFormatNV;

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTexCoordFormatNV(int size, int type, int stride);

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glTexCoordFormatNV pglTexCoordFormatNV;

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glEdgeFlagFormatNV(int stride);

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glEdgeFlagFormatNV pglEdgeFlagFormatNV;

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glSecondaryColorFormatNV(int size, int type, int stride);

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glSecondaryColorFormatNV pglSecondaryColorFormatNV;

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glFogCoordFormatNV(int type, int stride);

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glFogCoordFormatNV pglFogCoordFormatNV;

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexAttribFormatNV(uint index, int size, int type, [MarshalAs(UnmanagedType.I1)] bool normalized, int stride);

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexAttribFormatNV pglVertexAttribFormatNV;

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexAttribIFormatNV(uint index, int size, int type, int stride);

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexAttribIFormatNV pglVertexAttribIFormatNV;

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetIntegerui64i_vNV(int value, uint index, ulong* result);

			[RequiredByFeature("GL_NV_vertex_buffer_unified_memory", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetIntegerui64i_vNV pglGetIntegerui64i_vNV;

		}
	}

}
